配置多租户资源

Drill 操作的是内存和 CPU。目前,Drill 的资源被管理任何一个集群服务所管理。在一个多租户或其他类型的集群中,YARN 是否启动,你配置的内存和内存使用限制都是通过 drill-env.sh 文件。在 配置内存 一文中有描述。

配置一个多租户集群管理账户需要 Drill 资源。配置 drill-env.sh 分配资源给正在查询的任务。这可能需要配置集群管理,提交资源给其他进程。

在集群中启动 YARN

为了在集群中启动 YARN,改变内存资源来满足你的应用。例如,你有 128G 可用的内存来分配给以下工作者:

  • File system = 20G
  • HBase = 20G
  • OS = 8G
  • Yarn = ? Drill = ?

如果 Yarn 的工作量大,给 Drill 20G,例如,给 Yarn 60G。如果查询非常多,给 Drill 60G,给 Yarn 20G。

YARN 有两个主要服务:

  • ResourceManager如果配置了高可用,集群中至少有一个实例。
  • NodeManager每个节点包含一个实例。

配置 NodeManager 和 ResourceManager,并重新分配总内存给 YARN 的服务。如果你想限制内存上限,你可以设置 YARN_NODEMANAGER_HEAPSIZE 或 YARN_RESOURCEMANAGER_HEAPSIZE 环境变量。不要随着堆的需要设置 -Xmx 选项。

MapReduce 资源

修改 MapReduce 内存来满足你的应用需要。保留内存通常会给 YARN 应用。

如何管理 Drill CPU 资源

当前,你不能管理 Drill 中的 CPU资源,你可以使用 Linux cgroup 来管理 CPU 资源。

如何管理磁盘资源

planner.add_producer_consumer 系统选项启用和禁止一次读取线程。从磁盘扫描片段来预读取数据。如果你在缓慢的交互过程中,没有预去数据的某些类型的存储介质,该选项会告诉 Drill 添加一个生产者消费者读线程来操作。然后可以将一个线程分配出去,集中到一个单独的读取片段上。如果 Drill 使用内存,你可以禁止该选项来获得更好的性能。如果 Drill 使用磁盘,你应该启用该选项,并设置 planner.producer_consumer_queue_size 来获得合理的队列大小。有关这些选项的更多信息,见 性能调整 部分。